Some graphics rendering systems use a scene graph to represent the visual elements of a scene. Portions of a scene graph represent corresponding surfaces, some of which are static and some of which move within the scene. In order to render the various surfaces, a system may keep track of each surface for each frame. If a moving surface is above a static surface relative to a specific pixel in a frame, the moving surface is displayed for that pixel. If the moving surface moves so that it is no longer visible for that pixel, the surface below it must be rendered. Some techniques for handling such situations maintain data for each surface during the life of the frame, so that correct surfaces can be displayed as one or more surfaces move.
When one or more surfaces are not completely opaque, maintaining data for each surface allows the system to render various combinations of surfaces as one or more surfaces move. A graphics processing unit (GPU) can receive data for multiple surfaces, including an opaqueness factor, and render each pixel.